#################
Class updateXml.py
#################
import re

class ReadParamFile:
    """read the Param file from the specified folder, columns are seperated by tab"""
    def __init__(self, inFileFullName):
        self.FileName=inFileFullName
        self.FileData=dict()
    def setFileName(self, inFileFullName):
        self.FileName=inFileFullName
        self.FileData=dict()
    def rFile(self):
        f = open(self.FileName,'r')
        s=''
        lst=[]
        for line in f:
            s=line
            lst=s.split() #split by tab,2nd parameter set to empty
            self.FileData[lst[0]]=lst[1]
        f.close()
        return self.FileData


class UpdateTargetFile:
    """Change target file with the given data dict, {[key,value]...}"""
    def __init__(self, inFileFullName, inChgData):
        self.ChgData=dict()
        self.ChgData=inChgData
        self.ChgFileName=inFileFullName
    def setFileName(self, inFileFullName):
        self.ChgFileName=inFileFullName
    def setChgData(self, inChgData):
        self.ChgData=inChgData
    def wFile(self):
        f =open(self.ChgFileName, 'r')
        allines = f.readlines()
        f.close()
        f=open(self.ChgFileName, 'w')
        for line in allines:
            newline=line
            for key in self.ChgData:                
                s1=key
                s2=self.ChgData[key]                
                if newline.find(s1) <> -1:
                    newline=re.sub(s1,s2,newline)
                #print newline
            f.writelines(newline)
        f.close()    
        print 'process ok on {0}'.format(self.ChgFileName)






#################
Test Code:
#################


from updateXml import ReadParamFile,UpdateTargetFile

c1=ReadParamFile('d:\\tmp\\py\\2.1.txt')
c1.rFile()
c2=UpdateTargetFile('d:\\tmp\\py\\3.xml',c1.FileData )
c2.wFile()



